package com.test.converter;

/**
 * TypeConverter接口定义了一个类型转换的方法
 * 它允许调用者指定需要转换的目标类型，从而实现动态的类型转换
 */
public interface TypeConverter {

    /**
     * 根据需要转换的目标类型，将给定的值转换为该类型
     *
     * @param value 待转换的原始值，可以是任意类型
     * @param requiredType 需要转换的目标类型，通过这个参数指定转换后的类型
     * @param <T> 泛型参数，表示转换后的类型
     * @return 转换后的值，类型为指定的目标类型
     * @throws IllegalArgumentException 如果无法进行转换，抛出此异常
     */
    <T> T convertIfNecessary(Object value, Class<T> requiredType);
}
